Michaël Périn – Exercice sur la minimisation : cas pièges
Q1 : minimisez l'automate A1 qui ne possède aucun état accepteur
Minimisation:
- initial partition = { {1,2,3} }
- no more splitting:
- 3 -c-> {1} <-c- 2
- 3-b->1 ~ 2-b->2 since 1 , 2 in {1,2,3}
- 3-a->1 ~ 2-a->3 since 1 , 3 in {1,2,3}
- 3 -c-> {1} <-c- 1
- 3 -b-> {1} <-b- 1
- 3-a->1 ~ 1-a->2 since 1 , 2 in {1,2,3}
- 2 -c-> {1} <-c- 3
- 2-b->2 ~ 3-b->1 since 2 , 1 in {1,2,3}
- 2-a->3 ~ 3-a->1 since 3 , 1 in {1,2,3}
- 2 -c-> {1} <-c- 1
- 2-b->2 ~ 1-b->1 since 2 , 1 in {1,2,3}
- 2-a->3 ~ 1-a->2 since 3 , 2 in {1,2,3}
- 1 -c-> {1} <-c- 3
- 1 -b-> {1} <-b- 3
- 1-a->2 ~ 3-a->1 since 2 , 1 in {1,2,3}
- 1 -c-> {1} <-c- 2
- 1-b->1 ~ 2-b->2 since 1 , 2 in {1,2,3}
- 1-a->2 ~ 2-a->3 since 2 , 3 in {1,2,3}
- final partition = { {1,2,3} }
- A1m .pdf, .html
Q2 : minimisez l'automate A2 identique à A1 mais avec tous les états accepteurs
Minimisation:
- initial partition = { {0,1,2,3} }
states 0
/
1 : NOT same accepting status So, {0,1,2,3} is splitted into {0} || {1,2,3}states 1
/
3 : NOT same behavior on symbol 'a' So, {1,2,3} is splitted into {1,2} || {3}states 1
/
2 : NOT same behavior on symbol 'a' So, {1,2} is splitted into {1} || {2} - final partition = { {0} , {1} , {2} , {3} }
- A2m .pdf, .html
Synthèse sur la minimisation
Avant d'appliquer l'algorithme de regroupement des états en classes d'équivalence
Il faut
- complétez l'automate
- déterminisez l'automate (ce qui fait au passage la complétion)
Remarque
On peut minimiser un automate non déterministe mais l'algorithme de raffinement des classes d'équivalences est plus subtil (voir minimisation d'automate non déterministe).